this._group.connect('destroy', Lang.bind(this, this._onGroupDestroy));
+ this._pressedKey = null;
this._buttonKeys = {};
+ this._group.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
this._group.connect('key-release-event', Lang.bind(this, this._onKeyReleaseEvent));
this._backgroundBin = new St.Bin();
return button;
},
+ _onKeyPressEvent: function(object, event) {
+ this._pressedKey = event.get_key_symbol();
+ },
+
_onKeyReleaseEvent: function(object, event) {
+ let pressedKey = this._pressedKey;
+ this._pressedKey = null;
+
let symbol = event.get_key_symbol();
- let buttonInfo = this._buttonKeys[symbol];
+ if (symbol != pressedKey)
+ return false;
+ let buttonInfo = this._buttonKeys[symbol];
if (!buttonInfo)
return false;